package com.parking.platform.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.parking.common.core.model.PageInfo;
import com.parking.platform.dto.ResourceDto;
import com.parking.platform.dto.ResourceDtos;
import com.parking.platform.entity.PlatformResource;
import com.parking.platform.form.AddResourceForm;
import com.parking.platform.form.SelResourceForm;
import com.parking.platform.form.UpResourceForm;
import com.parking.platform.form.UpResourceInfoForm;

import java.util.List;


/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 香菜狗带
 * @since 2023年11月28日
 */
public interface PlatformResourceService extends IService<PlatformResource> {
    /**
     * 查询管理员权限菜单
     * 参数：
     * 令牌：authorization
     * 返回ResourceDto
     *
     */
    List<ResourceDto> platformResourceAll(Integer platformId);
    /**
     * 查询管理员权限菜单
     * 参数：
     *
     *  pageNum:当前页数
     *  pageSize:当前条数
     *  resourceName:资源名称
     * 返回ResourceDto
     *
     */
    PageInfo showResourceAll(SelResourceForm form);
    /**
     * 修改管理员权限
     * 参数：
     * platformResourceId:平台资源id
     * platformResourceName:平台资源名称
     * platformResourceParent:平台资源父节点
     * platformResourceRouter:平台资源路由地址
     *
     * */
    void upResourceData(UpResourceForm form,Integer platformId);
    /**
     * 添加权限资源
     * 参数：
     * platformResourceName:平台资源名称
     * platformResourceParent:平台资源父节点
     * platformResourceRouter:平台资源路由地址
     *
     * */
    void addResourceData(AddResourceForm form, Integer platformId);
    /**
     * 查询管理员权限菜单
     * 参数：
     * 名称：platformResourceName
     * 返回ResourceDto
     * 返回前端的菜单参数对象
     * 资源Id:platformResourceId
     * 资源名称:platformResourceName
     * 资源路由名称:platformResourceRouter
     * 父节点ID：platformResourceParent
     * 二级菜单:child
     *
     */
    ResourceDtos findResourceAll(String platformResourceName, Integer platformRoleId);
    /**
     * 查询全部父节点
     * 无参数：
     *
     * */
    List<ResourceDto> ParentResourceAll();
    /**
     * 修改资源信息
     * 参数：
     *平台资源父节点：platformResourceParent
     * 平台资源id：platformResourceId
     * 平台资源父节点：platformResourceParent
     * */
    void upResourceInfo(UpResourceInfoForm form, Integer platformId);
    /**
     * 查询管理员权限菜单
     * 参数：
     * 令牌：authorization
     * 返回数组
     *
     */
    List<String> findResourceRouter(Integer platformId);
}
